package leetcode_800;

import java.util.ArrayList;
import java.util.List;

/**
 *@author 周杨
 *SelfDividingNumbers_728 定义一种数字 其中构成的每个数字都能被其整除
 *describe:常规方法 AC 43%
 *2018年10月13日 下午3:40:55
 */
public class SelfDividingNumbers_728 {
	public static void main(String[] args) {
		SelfDividingNumbers_728 test=new SelfDividingNumbers_728();
		System.out.println(test.help(2));
	}
	
	public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> res=new ArrayList<Integer>();
        for(int i=left;i<=right;++i) {
        	if(help(i))
        		res.add(i);
        }
        return res;
    }
	
	private boolean help(int i) {
		boolean judge[]=new boolean[10];
		int temp=i;
		int rest=0;
		while(temp>0) {
			rest=temp%10;
			temp/=10;
			if(rest==0)//不允许出现0
				return false;
			if(judge[rest])
				continue;//已经计算过了
			else {
				if(i%rest==0) {
					judge[rest]=true;
				}
				else
					return false;
			}
		}
		return true;
	}
}
